package com.his.service;

import com.his.common.Rsp;
import com.his.entity.Order;

import java.util.List;

/**
 * (Order)表服务接口
 *
 * @author makejava
 * @since 2020-10-23 18:13:58
 */
public interface OrderService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Order queryById(Integer id);

    /**
     * 查询所有通过实体类属性
     *
     * @param order 实例对象
     * @return 查询的结果
     */
    List<Order> queryAll(Order order);

    /**
     * 新增数据
     *
     * @param order 实例对象
     * @return 实例对象
     */
    Order insert(Order order);

    /**
     * 修改数据
     *
     * @param order 实例对象
     * @return 实例对象
     */
    Order update(Order order);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 查询病人的订单,根据病人的id
     * @param patientPhone 病人id
     * @return 返回订单数据
     */
    Rsp getByPatientPhone(String patientPhone);

    /**
     * 根据订单id修改订单数据为支付状态
     * @param id 订单id数组
     * @return 返回状态
     */
    Rsp payAll(Integer[] id);

    /**
     * 支付住院的费用
     * @param id 住院id
     * @return 返回状态
     */
    Rsp payApplication(Integer id);


    /**
     * 通过id逻辑删除
     * @param id
     */
    Rsp deleteByIdLogic(Integer id);

    /**
     * 创建支付二维码
     * @param money 金额
     * @return 返回订单数据和支付二维码
     */
    Rsp getPayQRCode(Order pay);

    /**
     * 前端查询接口
     * @param orderNo 订单编号
     * @return 返回状态
     */
    Rsp payQuery(String orderNo);
}
